// source --> https://langhamfinancial.co.uk/wp-content/plugins/exit-notifier/assets/js/frontend.js?ver=1.4.3
function exit_notifier_leave_now(event) {
var urlsnippet = event.currentTarget.href;
if (ExitBoxSettings.Include_URL === 'on') {
if (event.currentTarget.href.length > 40) {
urlsnippet = event.currentTarget.href.substr(0, 40) + "...";
}
}
else {
urlsnippet = '';
}
if (ExitBoxSettings.theme === '' ) {
ExitBoxSettings.theme = 'default';
}
jQuery.jAlert({
'type': 'confirm',
'title': ExitBoxSettings.title,
'content': ExitBoxSettings.body,
'confirmBtnText': ExitBoxSettings.GoButtonText + ' ' + urlsnippet,
'denyBtnText': ExitBoxSettings.CancelButtonText,
'theme': ExitBoxSettings.theme,
'backgroundColor': ExitBoxSettings.backgroundcolor,
'size': ExitBoxSettings.size,
'showAnimation': ExitBoxSettings.showAnimation,
'hideAnimation': ExitBoxSettings.hideAnimation,
'onConfirm': function() {
if (ExitBoxSettings.new_window === 'on') {
window.open(event.currentTarget.href, 'New Window');
}
else {
location.href = event.currentTarget.href;
}
},
'onDeny': function(){
}
});
if (ExitBoxSettings.enable_timeout === 'on') {
//console.log("Setting " + ExitBoxSettings.timeout_seconds + " seconds timeout on the " + ExitBoxSettings.continue_or_cancel + " button.");
if (ExitBoxSettings.continue_or_cancel === 'continue') {
setTimeout(function() {
jQuery(".confirmBtn").click();
}, ExitBoxSettings.timeout_seconds*1000);
}
else if (ExitBoxSettings.continue_or_cancel === 'cancel') {
setTimeout(function() {
jQuery(".denyBtn").click();
}, ExitBoxSettings.timeout_seconds*1000);
}
}
return false;
};
jQuery(document).ready(function(){
jQuery.noConflict();
//console.log(ExitBoxSettings);
jQuery('head').append('');
jQuery('head').append('');
jQuery(function($) {
var select_external = 'a[href*="//"]:not([href*="' + ExitBoxSettings.siteroot + '"])';
// console.log('apply_to_all_offsite_links: ' + ExitBoxSettings.apply_to_all_offsite_links);
// console.log('jquery_selector_field: ' + ExitBoxSettings.jquery_selector_field);
if (ExitBoxSettings.apply_to_all_offsite_links !== 'on') {
select_external = ExitBoxSettings.jquery_selector_field;
}
jQuery(select_external).addClass('exitNotifierLink');
jQuery(document).on( 'click', select_external, exit_notifier_leave_now );
if (ExitBoxSettings.visual === 'on') {
jQuery(select_external).append(' ');
}
});
/*
var myevent = new Object();
myevent.currentTarget = {};
myevent.currentTarget.href = "http://kernel.org";
jQuery( "#footer" ).click(function() {
exit_notifier_leave_now(myevent);
});
*/
});
// source --> https://langhamfinancial.co.uk/wp-content/plugins/exit-notifier/assets/js/jAlert-v3.js?ver=1.4.3
/*
*
*
jAlert v.3
Made with love by Versatility Werks (http://flwebsites.biz)
MIT Licensed
*
*
*/
;(function($) {
$.fn.jAlert = function(options) {
var alert = this,
themes = ['default', 'custom', 'green', 'red', 'black', 'blue','yellow'],
sizes = ['xsm', 'sm', 'md', 'lg', 'xlg', 'full'],
backgroundColors = ['white', 'black'],
styles = [], //array of styles that gets joined together with a space between in a style tag on the jalert div
classes = ['animated'], //array of classes that get joined together with a space between on the jalert div
backgroundClasses = []; //array of classes that get joined together with a space between on the jalert background div
/* Block Multiple Instances by running jAlert for each one */
if (alert.length > 1){
alert.each(function() {
$(this).jAlert(alert.options);
});
return this;
}
/* Combine user alert.options with default */
alert.options = $.extend({}, $.fn.jAlert.defaults, options);
alert.instance = false;
if( alert.options.type == 'confirm' )
{
if( !alert.options.content )
{
alert.options.content = alert.options.confirmQuestion;
}
alert.options.btns = [
{ 'text': alert.options.confirmBtnText, 'theme': 'green', 'class': 'confirmBtn', 'closeAlert': true, 'onClick': alert.options.onConfirm },
{ 'text': alert.options.denyBtnText, 'theme': 'red', 'class': 'denyBtn', 'closeAlert': true, 'onClick': alert.options.onDeny }
];
alert.options.autofocus = alert.options.confirmAutofocus;
}
/* Add theme class */
if( $.inArray(alert.options.theme, themes) == -1 )
{
console.log('jAlert Config Error: Invalid theme selection.');
return false;
}
classes.push('ja_'+alert.options.theme);
/* If they didn't set an id, just create a random one */
if( !alert.options.id )
{
var unique = Date.now().toString() + Math.floor(Math.random() * 100000);
alert.options.id = 'ja_' + unique;
}
/* If they set custom classes */
if( alert.options.class )
{
classes.push(alert.options.class);
}
if( alert.options.classes )
{
classes.push(alert.options.classes);
}
/* If no title, add class */
if( !alert.options.title )
{
classes.push( 'ja_noTitle' );
}
/* if it's set and it's not in the array of sizes OR it's an object and it's missing width/height */
if( alert.options.size && ((typeof alert.options.size == 'string' && $.inArray(alert.options.size, sizes) == -1) || (typeof alert.options.size == 'object' && (typeof alert.options.size.width == 'undefined' || typeof alert.options.size.height == 'undefined'))) )
{
console.log('jAlert Config Error: Invalid size selection (try a preset or make sure you\'re including height and width in your size object).');
return false;
}
/* If it's not set, set to md */
else if( !alert.options.size )
{
classes.push('ja_sm');
}
/* If it's set and it's an object */
else if( typeof alert.options.size == 'object' )
{
styles.push('width: '+alert.options.size.width+';');
styles.push('height: '+alert.options.size.height+';');
}
/* If it's set and it's not an object */
else
{
classes.push('ja_'+alert.options.size);
}
/* Add background color class */
if( $.inArray(alert.options.backgroundColor, backgroundColors) == -1 )
{
console.log('jAlert Config Error: Invalid background color selection.');
return false;
}
backgroundClasses.push('ja_wrap_'+alert.options.backgroundColor);
/* If there are button(s), then you obviously don't want to hide the div when you alert anywhere or they'll be useless...SAME with autofocus */
if( (typeof alert.options.btns == 'object' || typeof alert.options.btns == 'array') || alert.options.autofocus ){
alert.options.closeOnClick = false;
}
alert.options.onOpen = [ alert.options.onOpen ];
var onload = "onload='$.fn.jAlert.mediaLoaded($(this))'",
loader = "
Loading...
";
/* Creates content */
if( alert.options.image )
{
alert.options.content = "";
}
else if( alert.options.video )
{
alert.options.content = "";
/* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */
alert.options.onOpen.unshift( function(alert){
var iframe = document.createElement("iframe");
iframe.src = alert.options.video;
if(iframe.addEventListener)
{
iframe.addEventListener('load', function(){
$.fn.jAlert.mediaLoaded($(this));
}, true)
}
else if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
$.fn.jAlert.mediaLoaded($(this));
});
} else {
iframe.onload = function(){
$.fn.jAlert.mediaLoaded($(this));
};
}
alert.find('.ja_video').append(iframe);
});
}
else if( alert.options.iframe )
{
if( !alert.options.iframeHeight )
{
alert.options.iframeHeight = $(window).height() * 0.9+'px';
}
alert.options.content = ""+
loader+
"
";
/* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */
alert.options.onOpen.unshift( function(alert){
var iframe = document.createElement("iframe");
iframe.src = alert.options.iframe;
iframe.height = alert.options.iframeHeight;
iframe.className = 'ja_iframe';
if(iframe.addEventListener)
{
iframe.addEventListener('load', function(){
$.fn.jAlert.mediaLoaded($(this));
}, true)
}
else if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
$.fn.jAlert.mediaLoaded($(this));
});
} else {
iframe.onload = function(){
$.fn.jAlert.mediaLoaded($(this));
};
}
alert.find('.ja_media_wrap').append(iframe);
});
}
else if( alert.options.ajax )
{
alert.options.content = ""+
loader+
"
";
/* Store as another var */
onAjaxCallbacks = alert.options.onOpen;
/* Overwrite the onOpen to be the ajax call */
alert.options.onOpen = [function(alert){
$.ajax(alert.options.ajax, {
async: true,
complete: function(jqXHR, textStatus)
{
alert.find('.ja_media_wrap').replaceWith(jqXHR.responseText);
/* Run onOpen callbacks here */
$.each(onAjaxCallbacks, function(index, onAjax){
onAjax(alert);
});
},
error: function(jqXHR, textStatus, errorThrown)
{
alert.options.onAjaxFail(alert, 'Error getting content: Code: '+jqXHR.status+ ' : Msg: '+jqXHR.statusText);
}
});
}];
}
alert.centerAlert = function()
{
var viewportHeight = $(window).height(),
alertHeight = alert.instance.height(),
diff = viewportHeight - alertHeight;
var top = diff / 2;
if( top > 200 )
{
top = top - 100;
}
if( top <= 0 )
{
top = 0;
}
alert.instance.css('margin-top', top+'px');
$('body').css('overflow', 'hidden');
if( diff > 5 )
{
alert.instance.parents('.ja_wrap').css('position', 'fixed');
}
else
{
alert.instance.parents('.ja_wrap').css('position', 'absolute');
/* Scroll to alert */
$('html, body').animate({
scrollTop: top - 50
}, 200);
}
}
var animateAlert = function(which, thisAlert){
if( which == 'hide' )
{
thisAlert.removeClass(alert.options.showAnimation).addClass(alert.options.hideAnimation);
}
else
{
thisAlert.centerAlert();
thisAlert.addClass(alert.options.showAnimation).removeClass(alert.options.hideAnimation).show();
}
}
var getBtnHTML = function(btn){
if(typeof btn.href == 'undefined'){ btn.href = ''; }
if(typeof btn.class == 'undefined'){ btn.class = ''; }
if(typeof btn.theme == 'undefined'){ btn.class += ' ja_btn_default'; }else{ btn.class += ' ja_btn_'+btn.theme; }
if(typeof btn.text == 'undefined'){ btn.text = ''; }
if(typeof btn.id == 'undefined'){ var unique = Date.now().toString() + Math.floor(Math.random() * 100000); btn.id = 'ja_btn_' + unique; }
if(typeof btn.target == 'undefined'){ btn.target = '_self'; }
if(typeof btn.closeAlert == 'undefined'){ btn.closeAlert = true; }
/* Attach on click handler */
$('body').on('click', '#'+btn.id, function(e){
var button = $(this);
if( btn.closeAlert )
{
button.parents('.jAlert').closeAlert();
}
var callbackResponse = true;
if( typeof btn.onClick == 'function' )
{
callbackResponse = btn.onClick(e, button);
}
if( !callbackResponse || btn.closeAlert )
{
e.preventDefault();
return false;
}
return callbackResponse;
});
return ""+btn.text+" ";
}
/* Hides an alert and optionally removes it */
alert.closeAlert = function(remove, onClose){
var alertInstance = $(this);
if( remove != false )
{
remove = true;
}
if(alertInstance.length)
{
alertInstance.unbind('DOMSubtreeModified');
animateAlert('hide', alertInstance);
window.setTimeout(function()
{
var alertWrap = alertInstance.parents('.ja_wrap');
if( remove )
{
alertWrap.remove();
}
else
{
alertWrap.hide();
}
if(typeof onClose == 'function')
{
onClose(alertInstance);
}
else if(typeof alert.options.onClose == 'function')
{
alert.options.onClose(alertInstance);
}
if( $('.jAlert').length > 0 )
{
$('.jAlert:last').centerAlert();
}
else
{
$('body').css('overflow', 'auto');
}
}, alert.options.animationTimeout);
}
return this;
}
/* Shows an alert that already exists */
alert.showAlert = function(replaceOthers, removeOthers, onOpen, onClose){
var alertInstance = $(this);
if( replaceOthers != false )
{
replaceOthers = true;
}
if( removeOthers !== false )
{
removeOthers = true;
}
if( replaceOthers )
{
$('.jAlert:visible').closeAlert(removeOthers);
}
/* Put this one above the last one by moving to end of dom */
var wrap = alertInstance.parents('.ja_wrap');
$('body').append(wrap);
animateAlert('show', alertInstance);
if( typeof onClose == 'function' )
{
alert.options.onClose = onClose;
}
window.setTimeout(function(){
if(typeof onOpen == 'function')
{
onOpen(alertInstance);
}
}, alert.options.animationTimeout);
}
/* Adds a new alert to the dom */
var addAlert = function(content){
var html = '';
html += ''+
'
'+
'
';
if( alert.options.closeBtn )
{
html += "
X
"; //closejAlert has a close handler attached, ja_close is for styling
}
if( alert.options.title )
{
html += "
";
}
html += '
'+content;
if( alert.options.btns )
{
html += '
';
}
if( typeof alert.options.btns[0] == 'object' )
{
$.each(alert.options.btns, function(index, btn){
if( typeof btn == 'object' )
{
html += getBtnHTML(btn);
}
});
}
else if( typeof alert.options.btns == 'object' )
{
html += getBtnHTML(alert.options.btns);
}
else if( alert.options.btns )
{
console.log('jAlert Config Error: Incorrect value for btns (must be object or array of objects): '+alert.options.btns);
}
if( alert.options.btns )
{
html += '
';
}
html += '
'+
'
'+
'
'+
'
';
var alertHTML = $(html);
if( alert.options.replaceOtherAlerts )
{
$('.jAlert:visible').closeAlert();
}
$('body').append(alertHTML);
alert.instance = $('#'+alert.options.id);
animateAlert('show', alert.instance);
if( alert.options.closeBtn ){
alert.instance.on('click', '.closejAlert', function(e){
e.preventDefault();
$(this).parents('.jAlert').closeAlert();
return false;
});
}
/* Bind mouseup handler to document if this alert has closeOnClick enabled */
if( alert.options.closeOnClick ){
/* Unbind if already exists */
$(document).off('mouseup', $.fn.jAlert.onMouseUp);
/* Bind mouseup */
$(document).on('mouseup', $.fn.jAlert.onMouseUp);
}
/* Bind on keydown handler to document and if esc was pressed, find all visible jAlerts with that close option enabled and close them */
if( alert.options.closeOnEsc ){
/* Unbind if already exists */
$(document).off('keydown', $.fn.jAlert.onEscKeyDown);
/* Bind keydown */
$(document).on('keydown', $.fn.jAlert.onEscKeyDown);
}
/* If there are onOpen callbacks, run them. */
if( alert.options.onOpen )
{
$.each(alert.options.onOpen, function(index, onOpen){
onOpen(alert.instance);
});
}
/* If the alert has an element that should be focused by default */
if( alert.options.autofocus )
{
alert.instance.find(alert.options.autofocus).focus();
}
alert.instance.bind("DOMSubtreeModified", function(){
alert.instance.centerAlert();
});
return alert.instance;
};
/* Shows an alert based on content type */
alert.initialize = function(){
if( !alert.options.content && !alert.options.image && !alert.options.video && !alert.options.iframe && !alert.options.ajax )
{
console.log('jAlert potential error: No content defined');
return addAlert('');
}
else
{
if( !alert.options.content )
{
alert.options.content = '';
}
return addAlert(alert.options.content);
}
}
alert.initialize();
return alert;
/* END OF PLUGIN */
};
/* Default alert.options */
$.fn.jAlert.defaults = {
'title': false, //title for the popup (false = don't show)
'content': false, //html for the popup (replaced if you use image, ajax, or iframe)
'image': false, //adds a centered img tag
'imageWidth': 'auto', //defaults to max-width: 100%; width: auto;
'video': false, //adds a responsive iframe video - value is the "src" of the iframe
'ajax': false, //uses ajax call to get contents
'onAjaxFail': function(alert, errorThrown){ //callback for when ajax fails
alert.closeAlert();
errorAlert(errorThrown);
},
'iframe': false, //uses iframe as content
'iframeHeight': false, //string. height of the iframe within the popup (false = 90% of viewport height)
'class': '', //adds a class to the jAlert (add as many as you want space delimited)
'classes': '', //add classes to the jAlert (space delimited)
'id': false, //adds an ID to the jAlert
'showAnimation': 'fadeInUp',
'hideAnimation': 'fadeOutDown',
'animationTimeout': 600, //approx duration of animation to wait until onClose
'theme': 'default', // red, green, blue, black, default
'backgroundColor': 'black', //white, black
'size': false, //false = css default, xsm, sm, md, lg, xlg, full, { height: 200, width: 200 }
'replaceOtherAlerts': false, //if there's already an open jAlert, remove it first
'closeOnClick': false, //close the alert when you click anywhere
'closeOnEsc': true, //close the alert when you click the escape key
'closeBtn': true, //adds a button to the top right of the alert that allows you to close it
'closeBtnAlt': false, //alternative close button
'btns': false, //adds buttons to the popup at the bottom. Pass an object for a single button, or an object of objects for many
/*
Variety of buttons you could create (also, an example of how to pass the object
'btns': [
{'text':'Open in new window', 'closeAlert':false, 'href': 'http://google.com', 'target':'_new'},
{'text':'Cool, close this alert', 'theme': 'blue', 'closeAlert':true},
{'text':'Buy Now', 'closeAlert':true, 'theme': 'green', 'onClick': function(){ console.log('You bought it!'); } },
{'text':'I do not want it', 'closeAlert': true, 'theme': 'red', 'onClick': function(){ console.log('Did not want it'); } },
{'text':'DOA', 'closeAlert': true, 'theme': 'black', 'onClick': function(){ console.log('Dead on arrival'); } }
]
*/
'btnBackground': true, //adds optional background to btns
'autofocus': false, //pass a selector to autofocus on it
'onOpen': function(alert){ //on open call back. Fires just after the alert has finished rendering
return false;
},
'onClose': function(alert){ //fires when you close the alert
return false;
},
'type': 'modal', //modal, confirm, tooltip
/* The following only applies when type == 'confirm' */
'confirmQuestion': 'Are you sure?',
'confirmBtnText': 'Yes',
'denyBtnText': 'No',
'confirmAutofocus': '.confirmBtn', //confirmBtn or denyBtn
'onConfirm': function(e, btn){
e.preventDefault();
console.log('confirmed');
return false;
},
'onDeny': function(e, btn){
e.preventDefault();
//console.log('denied');
return false;
}
}
/* Mouseup on document */
$.fn.jAlert.onMouseUp = function(e){
/* Find top visible jAlert and see if it has closeOnClick enabled */
var lastVisibleAlert = $('.jAlert:visible:last');
if( lastVisibleAlert.options.closeOnClick )
{
lastVisibleAlert.closeAlert();
}
};
/* Keydown on document (escape key) */
$.fn.jAlert.onEscKeyDown = function(e){
/* Escape = 27 */
if(e.keyCode === 27){
/* Find top visible jAlert and see if it has closeOnClick enabled */
var lastVisibleAlert = $('.jAlert:visible:last');
if( lastVisibleAlert.options.closeOnEsc )
{
lastVisibleAlert.closeAlert();
}
}
};
/* If you're not using the DOM (aka, you're not hiding or showing a specific alert, you can just use $.jAlert */
$.jAlert = function(options){
return $.fn.jAlert(options);
}
/* Alert on click function - attach to existing dom */
$.fn.alertOnClick = function(options)
{
$(this).on('click', function(e){
e.preventDefault();
$.jAlert(options);
return false;
});
}
/* Alert on click function - global, works for changing dom */
$.alertOnClick = function(selector, options)
{
$('body').on('click', selector, function(e){
e.preventDefault();
$.jAlert(options);
return false;
});
}
/* Slowed window resize function */
var $jAlertResizeTimeout;
$(window).resize(function () {
window.clearTimeout($jAlertResizeTimeout);
$jAlertResizeTimeout = window.setTimeout(function(){
$('.jAlert:visible').each(function(){
$(this).centerAlert();
});
}, 200);
});
/* Onload callback for iframe, img, etc */
$.fn.jAlert.mediaLoaded = function(elem){
var wrap = elem.parents('.ja_media_wrap'),
vid_wrap = wrap.find('.ja_video');
wrap.find('.ja_loader').remove();
if( vid_wrap.length > 0 )
{
vid_wrap.fadeIn('fast');
}
else
{
elem.fadeIn('fast');
}
elem.parents('.jAlert').centerAlert();
}
/* END OF ON JQUERY LOAD */
})(jQuery);
// source --> https://langhamfinancial.co.uk/wp-content/plugins/wp-megamenu/addons/wpmm-featuresbox/wpmm-featuresbox.js?ver=1
jQuery(document).ready(function($){'use strict';
var clr = '';
var clr_bg = '';
$(".wpmm-featurebox-hcolor").on({
mouseenter: function () {
clr = $(this).css('color');
clr_bg = $(this).css('backgroundColor');
$(this).css("color", $(this).data("hover-color"));
$(this).css("background-color", $(this).data("hover-bg-color"));
},
mouseleave: function () {
$(this).css("color", clr );
$(this).css("background-color", clr_bg );
}
});
});